package com.sparkseries.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class SysNotice {
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @Schema(description = "通知id")
    private Long id;
    /**
     * 通知类型
     * 0公告 1新闻 2会议 3其他
     */
    @Schema(description = "通知类型")
    private Integer noticeType;
    /**
     * 通知等级
     * 0普通 1一般 2紧急
     */
    @Schema(description = "通知等级")
    private Integer noticeLevel;
    /**
     * 通知标题
     */
    @Schema(description = "通知标题")
    private String noticeTitle;
    /**
     * 通知内容
     */
    @Schema(description = "通知内容")
    private String noticeContent;
    /**
     * 接收者类型
     * 0全部 1用户 2角色 3岗位 4部门 5公司
     */
    @Schema(description = "接收者类型")
    private Integer receiveType;
    /**
     * 接收者id，以逗号隔开
     */
    @Schema(description = "接收者id")
    private String receiveIds;
    /**
     * 接收者名，以逗号隔开
     */
    @Schema(description = "接收者名")
    private String receiveNames;
    /**
     * 发送者id
     */
    @Schema(description = "发送者id")
    private Long createId;
    /**
     * 发送时间
     */
    @Schema(description = "发送时间")
    private Date sendDate;
    /**
     * 状态
     * 0删除 1正常 2草稿 3撤回
     */
    @Schema(description = "状态")
    private Integer status;
    /**
     * 是否有附件
     * 0无附件 1有附件
     */
    @Schema(description = "是否有附件")
    private Integer fileFlag;
    /**
     * 创建者
     */
    @Schema(description = "创建者")
    private String createBy;
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;
    /**
     * 修改者
     */
    @Schema(description = "修改者")
    private String updateBy;
    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    @TableField(fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateDate;
    /**
     * 阅读状态
     * 0未读  1已读
     */
    @Schema(description = "阅读状态")
    private Integer readStatus;
    /**
     * 阅读时间
     */
    @Schema(description = "阅读时间")
    @TableField(fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date readDate;
}
